using System;
using System.Collections.Generic;
using Drawing = System.Drawing;
using System.Text.RegularExpressions;

using Nairo.Parser.Dom;

namespace Nairo.Parser
{
	public struct FontValue
	{
		SpecialValues special;
		string[] fontFamilies;
		FontWeight fontWeight;
		SizeValue fontSize;
		FontVariant fontVariant;
		FontStyle fontStyle;
		SizeValue lineHeight;
		
		public FontValue(SpecialValues special, string[] fontFamilies, FontWeight fontWeight, SizeValue fontSize, FontVariant fontVariant, FontStyle fontStyle, SizeValue lineHeight)
		{
			this.special = special;
			this.fontFamilies = fontFamilies;
			this.fontWeight = fontWeight;
			this.fontSize = fontSize;
			this.fontVariant = fontVariant;
			this.fontStyle = fontStyle;
			this.lineHeight = lineHeight;
		}
		
		public SpecialValues Special {
			get { return special; }
			set { special = value; }
		}
		
		public string[] FontFamilies {
			get { return fontFamilies; }
			set { fontFamilies = value; }
		}
		
		public FontWeight FontWeight {
			get { return fontWeight; }
			set { fontWeight = value; }
		}
		
		public SizeValue FontSize {
			get { return fontSize; }
			set { fontSize = value; }
		}
		
		public FontVariant FontVariant {
			get { return fontVariant; }
			set { fontVariant = value; }
		}
		
		public FontStyle FontStyle {
			get { return fontStyle; }
			set { fontStyle = value; }
		}
		
		public SizeValue LineHeight {
			get { return lineHeight; }
			set { lineHeight = value; }
		}
		
		public override string ToString()
		{
			return string.Format("[FontValue Special={0} FontFamilies={1} FontWeight={2} FontSize={3} FontVariant={4} FontStyle={5} LineHeight={6}]", this.special, string.Join(", ", this.fontFamilies), this.fontWeight, this.fontSize, this.fontVariant, this.fontStyle, this.lineHeight);
		}
		
	}
}
